<?php

/**
 * POSCMS框架文件
 * 二次开发时请勿修改本文件
 * 四川迅睿云软件开发有限公司 www.xunruicms.com
 */

/////////////////////////////////////////////////////////////////////////////

// 自定义个性目录，变更时请在index.php中定义
!defined('BASEPATH') && define('BASEPATH', FCPATH . 'system/'); // CI框架目录
!defined('COREPATH') && define('COREPATH', FCPATH.'dayrui/'); // poscms控制器目录
!defined('CMSPATH') && define('CMSPATH', FCPATH . 'poscms/'); // poscms程序目录
!defined('MYPATH') && define('MYPATH', FCPATH . 'my/'); // 自定义程序目录
!defined('APPSPATH') && define('APPSPATH', FCPATH . 'app/'); // 插件和模块目录
!defined('CACHEPATH') && define('CACHEPATH', WEBPATH.'cache/'); // 缓存目录

/////////////////////////////////////////////////////////////////////////////

// 固定变量
define('EXT', '.php');
define('SYSDIR', 'system');

require CMSPATH.'config/user_agents.php';


// 兼容性判断
if (!function_exists('dr_is_app_dir')) {
    function dr_is_app_dir($dir) {
        return is_dir(APPSPATH.$dir);
    }
}
if (!function_exists('dr_get_app_dir')) {
    function dr_get_app_dir($dir) {
        return APPSPATH.$dir.'/';
    }
}

// 客户端判定
$host = strtolower($_SERVER['HTTP_HOST']);
$is_mobile = 0;
if ($mobiles) {
    foreach ($mobiles as $key => $val) {
        if (FALSE !== (strpos(strtolower($_SERVER['HTTP_USER_AGENT']), $key))) {
            // 表示移动端
            $is_mobile = 1;
            break;
        }
    }
}

define('DOMAIN_NAME', $host); // 当前域名

if (defined('APP_DIR')) {
    // 来自模块
    $_GET['s'] = APP_DIR;
} else {
    // 解析自定义域名
    if (is_file(CACHEPATH . 'config/module_domain.php')){
        $domain = require CACHEPATH . 'config/module_domain.php';
        if ($domain) {
            $dir = isset($domain[$host]) && $domain[$host] ? $domain[$host] : '';
            if (strpos($dir, 'm_') !== false) {
                $dir  = substr($dir, 2);
                !defined('IS_MOBILE_SELF') && define('IS_MOBILE_SELF', 1);
            }
            if ($dir && (dr_is_app_dir($dir) || $dir == 'member')) {
                !$_GET['s'] && $_GET['s'] = $dir; // 强制定义为模块
            }
        }
        unset($domain);
    }
}

// 伪静态字符串
$uu = isset($_SERVER['HTTP_X_REWRITE_URL']) || trim($_SERVER['REQUEST_URI'], '/') == SELF ? trim($_SERVER['HTTP_X_REWRITE_URL'], '/') : ($_SERVER['REQUEST_URI'] ? trim($_SERVER['REQUEST_URI'], '/') : NULL);
$uri = strpos($uu, SELF) === 0 || strpos($uu, '?') === 0 ? '' : $uu; // 以index.php或者?开头的uri不做处理

if (!defined('IS_MEMBER')) {
    // 分析url
    require CMSPATH.'core/Rewrite.php';
} else {
    // 通过百度编辑器/api接口定义的会员模块
    define('APPPATH', COREPATH);
    define('APP_DIR', 'member');
    $_GET['d'] = 'member'; // 将项目标识作为directory
}

// 请求URI字符串
!defined('DR_URI') && define('DR_URI', '');

require CMSPATH.'core/Service.php';
require CMSPATH.'core/Autoloader.php';
$loader = new Poscms\Autoloader\Autoloader();
$loader->register();

// CI框架核心文件
require BASEPATH . 'core/CodeIgniter.php';